# 顶格定义的变量，全局变量，所有地方都可以使用
name = '张三'


def demo():
    # 在函数中定义的变量，只在函数中生效
    # 局部变量
    name = '李四'


demo()
print(name)


# 默认值函数
# 默认值参数 1、必须在最后   2、直接赋值
def info(name1, nation='汉族', age=18):
    print(f'姓名:{name1}')
    print(f'年龄:{age}')
    print(f'民族:{nation}')


info(name1='张三', nation='土家族', age='20')


# 非固定参数 *args 将多余的参数 以 元组的方式 存储
def info(name3, *args):
    print(f'{name3}')
    print(f'{args}')


info('张三', 18, 1, 2, 3, 4, 5, 6)


# 非固定参数 **kwargs 将多余的参数 以 dict的方式 存储
def info2(name4, **kwatgs):
    print(f'{name4}')
    print(f'{kwatgs}')


info2('张三', age=19, tel=22)

